Data Formats
Two basic data formats are used by the driver.
Bit Number
The individual output to be affected by functions such as PIPLX_OpBit is specified by a bit number value.
For any sub-unit type other than a matrix, this unity-based number directly specifies the affected output channel.
For a matrix sub-unit, the bit number of a crosspoint is determined by folding on the row-axis. For example, in a matrix of dimensions 8 rows x 12 columns, bit number 13 represents the crosspoint (row 2, column 1):
Note: matrix operation
More straightforward matrix operation using row/column co-ordinates is provided by PIPLX_OpCrosspoint and associated functions.
Data Array
Functions affecting all of a sub-unit's outputs such as PIPLX_WriteSub utilise a one-dimensional data array (or vector) of 32-bit longwords. In the array, each bit represents the state of one output channel: '0' for OFF, '1' for ON.
The least significant bit of the base element of the array corresponds to channel 1. More significant bits correspond to higher-numbered channels.
For a matrix sub-unit, bit assignments follow the same pattern as that used to determine bit numbers. Hence for the matrix example above:
Element 0 bit 0 = row 1 column 1
Element 0 bit 11 = row 1 column 12
Element 0 bit 12 = row 2 column 1
Element 2 bit 31 = row 8 column 12
Identical formatting is employed for PIPLX_WriteMask, as well as the results of the PIPLX_ViewSub and PIPLX_ViewMask functions. The result of input function PIPLX_ReadSub is similar, though contained in a single longword.